package com.ruoyi.iot.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 观测站设备对象 iot_piolt_device
 *
 * @author rww
 * @date 2023-09-18
 */
public class PioltDevice extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键编号 */
    @JsonFormat(shape =JsonFormat.Shape.STRING)
    private Long id;
    @JsonFormat(shape =JsonFormat.Shape.STRING)
    private Long userId;
    /** 设备编号 */
    @Excel(name = "设备编号")
    private String deviceCode;

    /** 设备名称 */
    @Excel(name = "设备名称")
    private String deviceName;
    @JsonFormat(shape =JsonFormat.Shape.STRING)
    private Long deviceRegion;//所属区域
    private String deviceRegionName;//
    /** 设备类型 */
    @Excel(name = "设备类型")
    @JsonFormat(shape =JsonFormat.Shape.STRING)
    private Long deviceType;
    private String deviceTypeCode;
    private String deviceTypeName;

    /** 设备系列 */
    @Excel(name = "设备系列")
    private String deviceSeries;//ys设备的deviceSerial
    /** 设备序列号 */
    @Excel(name = "设备序列号")
    private String deviceNumber;// ys 设备的 validateCode  （海康的萤石验证码是二维码扫描出来的，只用于注册到萤石云，用一次的）
    private String encryptKey;//设备加密密钥(海康用这个密码 获取url)
    private String deviceModel;////设备型号

    /** 授权类型own:直接拥有, shared:被授权 */
    @Excel(name = "授权类型own:直接拥有, shared:被授权")
    private String deviceAuthorized;

    /** 设备状态描述 */
    @Excel(name = "设备状态描述")
    private String deviceDescription;

    /** 所属观测站id */
    @Excel(name = "所属观测站id")
    private Long stationId;//station_id
    private String stationName;

    /** 设备x坐标 */
    @Excel(name = "设备x坐标")
    private String deviceZbX;

    /** 设备y坐标 */
    @Excel(name = "设备y坐标")
    private String deviceZbY;

    /** 位置信息(省/市/区县)使用‘,’号区分 */
    @Excel(name = "位置信息(省/市/区县)使用‘,’号区分")
    private String deviceLocation;


    private int deviceIsEncrypt;//
    private int deviceAlarmSoundMode;//
    private int deviceOfflineNotify;//
    private String deviceCategory;//

    /** 设备状态 */
    @Excel(name = "设备状态")
    private String deviceState;//
    private String deviceStateRemarks;//
    public static String StateRegistError = "100";//注册失败
    public static String StateRegistOk = "200";//注册成功
    ///////////////////////////////////////////////////////////////////
    public static final String device_status_10 = "cc";//在线
    public static final String device_status_20 = "20";//离线
    public static final String device_status_30 = "30";//设备未上报
    ///////////////////////////////////////////////////////////////////

    private String ipcSerial;//	String	IPC序列号
    private Integer channelNo;//	int	通道号
    private String channelName;//	String	通道名
//    private int status;//	int	在线状态：0-不在线，1-在线,-1设备未上报
    private Integer isShared;//
    private String picUrl;//	String	图片地址（大图），若在萤石客户端设置封面则返回封面图片，未设置则返回默认图片
//    private int isEncrypt;//	int	是否加密，0：不加密，1：加密
    private Integer videoLevel;//	int	视频质量：0-流畅，1-均衡，2-高清，3-超清
    private Boolean relatedIpc;//	boolean	当前通道是否关联IPC：true-是，false-否。设备未上报或者未关联都是false

    //////////////////////////////////////////////////////////////////

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;


    private String deviceRegions;//

    /** 设备所在区域 */
    @Excel(name = "设备所在区域")
    private String deviceAreacode;

    /** 设备地址 */
    @Excel(name = "设备地址")
    private String deviceAddress;

    /** 直播地址 */
    @Excel(name = "直播地址")
    private String deviceLiveaddress;

    /** 访问地址 */
    @Excel(name = "访问地址")
    private String deviceHdaddress;
    private String classify;

    /////////////////////


    public String getDeviceRegionName() {
        return deviceRegionName;
    }

    public void setDeviceRegionName(String deviceRegionName) {
        this.deviceRegionName = deviceRegionName;
    }

    public void setDeviceIsEncrypt(int deviceIsEncrypt) {
        this.deviceIsEncrypt = deviceIsEncrypt;
    }

    public void setDeviceAlarmSoundMode(int deviceAlarmSoundMode) {
        this.deviceAlarmSoundMode = deviceAlarmSoundMode;
    }

    public void setDeviceOfflineNotify(int deviceOfflineNotify) {
        this.deviceOfflineNotify = deviceOfflineNotify;
    }

    public String getDeviceRegions() {
        return deviceRegions;
    }

    public void setDeviceRegions(String deviceRegions) {
        this.deviceRegions = deviceRegions;
    }

    public String getEncryptKey() {
        return encryptKey;
    }

    public void setEncryptKey(String encryptKey) {
        this.encryptKey = encryptKey;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getClassify() {
        return classify;
    }

    public void setClassify(String classify) {
        this.classify = classify;
    }

    public Long getDeviceRegion() {
        return deviceRegion;
    }

    public void setDeviceRegion(Long deviceRegion) {
        this.deviceRegion = deviceRegion;
    }

    public String getIpcSerial() {
        return ipcSerial;
    }

    public void setIpcSerial(String ipcSerial) {
        this.ipcSerial = ipcSerial;
    }

    public Integer getChannelNo() {
        return channelNo;
    }

    public void setChannelNo(Integer channelNo) {
        this.channelNo = channelNo;
    }

    public String getChannelName() {
        return channelName;
    }

    public void setChannelName(String channelName) {
        this.channelName = channelName;
    }

    public Integer getIsShared() {
        return isShared;
    }

    public void setIsShared(Integer isShared) {
        this.isShared = isShared;
    }

    public String getPicUrl() {
        return picUrl;
    }

    public void setPicUrl(String picUrl) {
        this.picUrl = picUrl;
    }

    public Integer getVideoLevel() {
        return videoLevel;
    }

    public void setVideoLevel(Integer videoLevel) {
        this.videoLevel = videoLevel;
    }

    public Boolean getRelatedIpc() {
        return relatedIpc;
    }

    public void setRelatedIpc(Boolean relatedIpc) {
        this.relatedIpc = relatedIpc;
    }

    public Integer getDeviceIsEncrypt() {
        return deviceIsEncrypt;
    }

    public void setDeviceIsEncrypt(Integer deviceIsEncrypt) {
        this.deviceIsEncrypt = deviceIsEncrypt;
    }

    public Integer getDeviceAlarmSoundMode() {
        return deviceAlarmSoundMode;
    }

    public void setDeviceAlarmSoundMode(Integer deviceAlarmSoundMode) {
        this.deviceAlarmSoundMode = deviceAlarmSoundMode;
    }

    public Integer getDeviceOfflineNotify() {
        return deviceOfflineNotify;
    }

    public void setDeviceOfflineNotify(Integer deviceOfflineNotify) {
        this.deviceOfflineNotify = deviceOfflineNotify;
    }

    public String getDeviceCategory() {
        return deviceCategory;
    }

    public void setDeviceCategory(String deviceCategory) {
        this.deviceCategory = deviceCategory;
    }

    public String getDeviceModel() {
        return deviceModel;
    }

    public void setDeviceModel(String deviceModel) {
        this.deviceModel = deviceModel;
    }

    public String getDeviceStateRemarks() {
        return deviceStateRemarks;
    }

    public void setDeviceStateRemarks(String deviceStateRemarks) {
        this.deviceStateRemarks = deviceStateRemarks;
    }

    public String getDeviceTypeCode() {
        return deviceTypeCode;
    }

    public void setDeviceTypeCode(String deviceTypeCode) {
        this.deviceTypeCode = deviceTypeCode;
    }

    public String getDeviceTypeName() {
        return deviceTypeName;
    }

    public void setDeviceTypeName(String deviceTypeName) {
        this.deviceTypeName = deviceTypeName;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }


    public Long getStationId() {
        return stationId;
    }

    public void setStationId(Long stationId) {
        this.stationId = stationId;
    }

    public String getStationName() {
        return stationName;
    }

    public void setStationName(String stationName) {
        this.stationName = stationName;
    }

    public void setDeviceCode(String deviceCode)
    {
        this.deviceCode = deviceCode;
    }

    public String getDeviceCode()
    {
        return deviceCode;
    }
    public void setDeviceName(String deviceName)
    {
        this.deviceName = deviceName;
    }

    public String getDeviceName()
    {
        return deviceName;
    }
    public void setDeviceType(Long deviceType)
    {
        this.deviceType = deviceType;
    }

    public Long getDeviceType()
    {
        return deviceType;
    }
    public void setDeviceSeries(String deviceSeries)
    {
        this.deviceSeries = deviceSeries;
    }

    public String getDeviceSeries()
    {
        return deviceSeries;
    }
    public void setDeviceAuthorized(String deviceAuthorized)
    {
        this.deviceAuthorized = deviceAuthorized;
    }

    public String getDeviceAuthorized()
    {
        return deviceAuthorized;
    }
    public void setDeviceDescription(String deviceDescription)
    {
        this.deviceDescription = deviceDescription;
    }

    public String getDeviceDescription()
    {
        return deviceDescription;
    }
    public void setDeviceZbX(String deviceZbX)
    {
        this.deviceZbX = deviceZbX;
    }

    public String getDeviceZbX()
    {
        return deviceZbX;
    }
    public void setDeviceZbY(String deviceZbY)
    {
        this.deviceZbY = deviceZbY;
    }

    public String getDeviceZbY()
    {
        return deviceZbY;
    }
    public void setDeviceLocation(String deviceLocation)
    {
        this.deviceLocation = deviceLocation;
    }

    public String getDeviceLocation()
    {
        return deviceLocation;
    }
    public void setDeviceState(String deviceState)
    {
        this.deviceState = deviceState;
    }

    public String getDeviceState()
    {
        return deviceState;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }

    public void setDeviceNumber(String deviceNumber)
    {
        this.deviceNumber = deviceNumber;
    }

    public String getDeviceNumber()
    {
        return deviceNumber;
    }
    public void setDeviceAreacode(String deviceAreacode)
    {
        this.deviceAreacode = deviceAreacode;
    }

    public String getDeviceAreacode()
    {
        return deviceAreacode;
    }
    public void setDeviceAddress(String deviceAddress)
    {
        this.deviceAddress = deviceAddress;
    }

    public String getDeviceAddress()
    {
        return deviceAddress;
    }
    public void setDeviceLiveaddress(String deviceLiveaddress)
    {
        this.deviceLiveaddress = deviceLiveaddress;
    }

    public String getDeviceLiveaddress()
    {
        return deviceLiveaddress;
    }
    public void setDeviceHdaddress(String deviceHdaddress)
    {
        this.deviceHdaddress = deviceHdaddress;
    }

    public String getDeviceHdaddress()
    {
        return deviceHdaddress;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("deviceCode", getDeviceCode())
            .append("deviceName", getDeviceName())
            .append("deviceType", getDeviceType())
            .append("deviceSeries", getDeviceSeries())
            .append("deviceAuthorized", getDeviceAuthorized())
            .append("deviceDescription", getDeviceDescription())
            .append("deviceZbX", getDeviceZbX())
            .append("deviceZbY", getDeviceZbY())
            .append("deviceLocation", getDeviceLocation())
            .append("deviceState", getDeviceState())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("delFlag", getDelFlag())
            .append("deviceNumber", getDeviceNumber())
            .append("deviceAreacode", getDeviceAreacode())
            .append("deviceAddress", getDeviceAddress())
            .append("deviceLiveaddress", getDeviceLiveaddress())
            .append("deviceHdaddress", getDeviceHdaddress())
            .toString();
    }
}
